package models

import (
	"github.com/jinzhu/gorm"
	"time"
	"hytx_media/pkg/logging"
)

type MediaUser struct {
	ID        int       `gorm:"primary_key" json:"id"`
	Phone     string    `json:"phone"`
	Email     string    `json:"email"`
	Password  string    `json:"password"`
	Identity  int       `json:"identity"`
	Score     int       `json:"score"`
	Status    int       `json:"status"`
	IsEnabled int       `json:"is_enabled"`
	CreatedAt time.Time `json:"created_at"`
	UpdatedAt time.Time `json:"updated_at"`
}

//修改默认表名
func (MediaUser) TableName() string {
	return "media_users"
}

// 查询用户和密码是否正确
func MediaUserFindOne(username string) (*MediaUser, error) {
	var mediaUser MediaUser
	err := DB.Select("id, password, is_enabled, status").Where(MediaUser{Phone: username}).First(&mediaUser).Error
	if err != nil && err != gorm.ErrRecordNotFound {
		return nil, err
	}

	if mediaUser.ID > 0 {
		return &mediaUser, nil
	}

	return nil, nil
}

func MediaUserAdd(data map[string]interface{}) error {

	mediaUser := MediaUser{
		Phone:     data["phone"].(string),
		Password:  data["password"].(string),
		Status:    1,
		CreatedAt: time.Now(),
		UpdatedAt: time.Now(),
	}
	logging.Info(mediaUser)
	if err := DB.Create(&mediaUser).Error; err != nil {
		logging.Info(err)
		return err
	}

	return nil
}
func GetUserById(id int) (*MediaUser, error) {
	var user MediaUser
	err := DB.First(&user, id).Error
	if err != nil {
		return nil, err
	}
	return &user, err
}

// 修改身份
func ModifyMediaUserIdentity(identity, id int) error {
	if err := DB.Model(&MediaUser{}).Where("id = ?", id).Update("identity", identity).Error; err != nil {
		return err
	}
	return nil
}
